package edu.ubb.remeye.communication.message.codec;

import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFactory;
import org.apache.mina.filter.codec.ProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolEncoder;

/**
 * Codec factory for message encoding and decoding.
 * 
 * @author Andrew Ianicicau
 *
 */
public class MessageCodecFactory implements ProtocolCodecFactory {

	///////////////////////////////////////////////////////////////////////////////////
	////		ATTRIBUTES - MessageCodecFactory
	///////////////////////////////////////////////////////////////////////////////////

	/**
	 * Message encoder.
	 */
	private ProtocolEncoder encoder;
	
	/**
	 * Message decoder.
	 */
	private ProtocolDecoder decoder;

	
	
	///////////////////////////////////////////////////////////////////////////////////
	////		CONSTRUCTORS - MessageCodecFactory
	///////////////////////////////////////////////////////////////////////////////////

	public MessageCodecFactory() {
		encoder = new MessageEncoder();
		decoder = new MessageDecoder();
	}
	
	
	
	///////////////////////////////////////////////////////////////////////////////////
	////		METHODS - MessageCodecFactory
	///////////////////////////////////////////////////////////////////////////////////
	
	@Override
	public ProtocolDecoder getDecoder(IoSession session) throws Exception {
		return decoder;
	}

	@Override
	public ProtocolEncoder getEncoder(IoSession session) throws Exception {
		return encoder;
	}

}
